<?php
/**
 * Copyright (c) 2009, Jacek Karczmarczyk
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * - Redistributions of source code must retain the above copyright notice,
 *   this list of conditions and the following disclaimer.
 * - Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 * - Neither the name of the author nor the names of its contributors may be
 *   used to endorse or promote products derived from this software without
 *   specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 *
 * PHP Version 5
 *
 * @package Larchana_View
 * @version 0.1
 * @author Jacek Karczmarczyk <jacek@karczmarczyk.pl>
 */


class Larchana_View_Helper_ErrorMessenger extends Zend_View_Helper_HeadTitle
{
    /**
     * Registry key for placeholder
     * @var string
     */
    protected $_regKey = 'Larchana_View_Helper_ErrorMessenger';

	public function errorMessenger($message = null, $setType = Zend_View_Helper_Placeholder_Container_Abstract::APPEND)
	{
		if ($message) {
			if ($setType == Zend_View_Helper_Placeholder_Container_Abstract::SET) {
				$this->set($message);
			} elseif ($setType == Zend_View_Helper_Placeholder_Container_Abstract::PREPEND) {
				$this->prepend($message);
			} else {
				$this->append($message);
			}
		}

		return $this;
	}

	/**
	 * Turn helper into string
	 *
	 * @param  string|null $class
	 * @param  string|null $indent
	 * @param  string|null $locale
	 * @return string
	 */
	public function toString($class = 'flash', $indent = null, $locale = null)
	{
		$indent = (null !== $indent)
				? $this->getWhitespace($indent)
				: $this->getIndent();

		$items = array();

		if($this->_translate && $translator = $this->getTranslator()) {
			foreach ($this as $item) {
				$items[] = $translator->translate($item, $locale);
			}
		} else {
			foreach ($this as $item) {
				$items[] = $item;
			}
		}

		
		$output = '';
		foreach($items as $item)
		{
			$output .= $indent . '<li>' . (($this->_autoEscape) ? $this->_escape($item) : $item) . '</li>';
		}

		return $output ? $indent . '<ul'.($class ? (' class="' . $class . '"') : '') . '>' . $output . '</ul>' : '';
	}
}
